$(document).ready(function() {
    // 全选/取消全选
    $('#select-all').click(function() {
        var isChecked = $(this).prop('checked');
        $('.select-item').prop('checked', isChecked);
        updateTotalPrice();
    });

    // 单个商品选择
    $('.select-item').click(function() {
        var allChecked = $('.select-item').length === $('.select-item:checked').length;
        $('#select-all').prop('checked', allChecked);
        updateTotalPrice();
    });

    // 增加数量
    $('input[name="plus"]').click(function() {
        var input = $(this).siblings('input[name="amount"]');
        var currentValue = parseInt(input.val());
        input.val(currentValue + 1);
        updateItemTotal($(this).closest('ul'));
    });

    // 减少数量
    $('input[name="minus"]').click(function() {
        var input = $(this).siblings('input[name="amount"]');
        var currentValue = parseInt(input.val());
        if (currentValue > 1) {
            input.val(currentValue - 1);
            updateItemTotal($(this).closest('ul'));
        }
    });

    // 更新每个商品的总价
    function updateItemTotal($row) {
        const price = parseFloat($row.find('li.price').text().replace('¥', '').trim());
        const quantity = parseInt($row.find('input[name="amount"]').val());
        const total = price * quantity;
        $row.find('li.total-price').text('¥' + total.toFixed(2));
        updateTotalPrice();
    }

    // 更新购物车的总价
    function updateTotalPrice() {
        let totalPrice = 0;
        $('.select-item:checked').each(function() {
            var row = $(this).closest('ul');
            const price = parseFloat(row.find('li.price').text().replace('¥', '').trim());
            const quantity = parseInt(row.find('input[name="amount"]').val());
            const subtotal = price * quantity;
            totalPrice += subtotal;
        });
        $('#totalPrice span1').text($('.select-item:checked').length);
        $('#totalPrice span:last').text('¥' + totalPrice.toFixed(2));
    }

    // 删除商品
    window.deleteShopInfo = function(id) {
        $.ajax({
            url: 'deleteShopInfoServlet',
            type: 'POST',
            data: { id: id },
            success: function(response) {
                $(`ul:has(input[value="${id}"])`).remove();
                updateTotalPrice();
            }
        });
    };

    // 结算
    window.checkout = function() {
        var selectedItems = [];
        $('.select-item:checked').each(function() {
            var row = $(this).closest('ul');
            var id = $(this).val();
            var number = row.find('input[name="amount"]').val();
            selectedItems.push({ id: id, number: number });
        });
        $.ajax({
            url: 'createOrderServlet',
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify(selectedItems),
            success: function(response) {
                if (response.status === 'success') {
                    window.location.href = 'sureOrder.html';
                }
            }
        });
    };
});

// 更新每个商品的总价，并同步到数据库
function updateItemTotal($row) {
    const price = parseFloat($row.find('li.price').text().replace('¥', '').trim());
    const quantity = parseInt($row.find('input[name="amount"]').val());
    const total = price * quantity;
    $row.find('li.total-price').text('¥' + total.toFixed(2));
    updateTotalPrice();

    // 获取商品ID
    const id = $row.find('input[name="amount"]').data('id');

    // 更新数据库
    $.ajax({
        url: 'updateShopQuantityServlet',
        type: 'POST',
        contentType: 'application/x-www-form-urlencoded',
        data: { id: id, number: quantity },
        success: function(response) {
            if (response.trim() !== 'success') {
                alert('更新商品数量到数据库失败。');
            }
        },
        error: function() {
            alert('更新商品数量时发生错误。');
        }
    });
}
